1   package uba.db.impl.filesystem;
2   
3   import java.io.File;
4   import java.util.ArrayList;
5   import java.util.Iterator;
6   import java.util.List;
7   
8   import uba.db.TableReaderImplTest;
9   import uba.db.table.Table;
10  import uba.db.table.TableSchema;
11  import uba.db.testhelpers.TestUtils;
12  
13  /***
14   * @version $Revision: 1.3 $
15   */
16  public class FileSystemTableReaderTest extends TableReaderImplTest {
17      private File databaseDirectory;
18      private List fileSystemTables;
19  
20      /***
21       * @see junit.framework.TestCase#setUp()
22       */
23      protected void setUp() throws Exception {
24          // el orden de llamada al setUp del super es importante, por que se
25          // inicializa la coleccion fileSystemTables
26          fileSystemTables = new ArrayList();
27          databaseDirectory = TestUtils.tempDirectory();
28  
29          super.setUp();
30      }
31  
32      /***
33       * @see junit.framework.TestCase#tearDown()
34       */
35      protected void tearDown() throws Exception {
36          super.tearDown();
37          if (fileSystemTables != null) {
38              removeFileSystemTableFiles();
39          }
40      }
41  
42      private void removeFileSystemTableFiles() {
43          Iterator iter = fileSystemTables.iterator();
44  
45          while (iter.hasNext()) {
46              FileSystemTable fileSystemTable = (FileSystemTable) iter.next();
47              File fileName = fileSystemTable.dataFile();
48              if (fileName.exists()) {
49                  fileName.delete();
50              }
51              
52              fileName = fileSystemTable.schemaFile();
53              if (fileName.exists()) {
54                  fileName.delete();
55              }
56          }
57      }
58  
59      /***
60       * @see uba.db.TableReaderImplTest#createTable(uba.db.table.TableSchema)
61       */
62      protected Table createTable(TableSchema schema) throws Exception {
63          FileSystemTable newFileSystemTable = FileSystemTable.createNew(databaseDirectory,
64                                                                         schema);
65          fileSystemTables.add(newFileSystemTable);
66  
67          return newFileSystemTable;
68      }
69  }